/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.data.crud;

import br.data.model.Listaprodutos;
import br.data.model.ListaprodutosPK;
import br.data.model.Listas;
import br.data.model.ListasPK;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 *
 * @author thiago
 */
public class CrudListaProdutos {

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("wabtPU");

    public java.util.Collection<br.data.model.Listaprodutos> getAll(ListasPK listaPk) {

        EntityManager em = emf.createEntityManager();
        try {
            return em.createQuery("SELECT l FROM Listaprodutos l WHERE l.listaprodutosPK.codigolist = :codigolist AND l.listaprodutosPK.codigocli =:codigocli").setParameter("codigocli", listaPk.getCodigocli()).setParameter("codigolist", listaPk.getCodigolist()).getResultList();
        } catch (Exception e) {
            return null;
        } finally {
            em.close();
        }
    }

    public int removeAll(ListasPK listaPk) {

        EntityManager em = emf.createEntityManager();
        try {
            em.getTransaction().begin();
            int result = em.createQuery("DELETE FROM Listaprodutos l WHERE l.listaprodutosPK.codigolist = :codigolist AND l.listaprodutosPK.codigocli =:codigocli").setParameter("codigocli", listaPk.getCodigocli()).setParameter("codigolist", listaPk.getCodigolist()).executeUpdate();
            em.getTransaction().commit();
            return result;
        } catch (Exception e) {
            return 0;
        } finally {
            em.close();
        }
    }

    public void remove(Object listaProd) {
        EntityManager em = emf.createEntityManager();
        try {
            em.getTransaction().begin();
            Listaprodutos tmp = (Listaprodutos) em.merge(listaProd);
            em.remove(tmp);
            em.getTransaction().commit();
        } catch (Exception e) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", e);
            em.getTransaction().rollback();
        } finally {
            em.close();
        }
    }

    public Listas getListaProduto(ListaprodutosPK pkListaProduto) {
        EntityManager em = emf.createEntityManager();
        try {
            Listas list = em.find(br.data.model.Listas.class, pkListaProduto);
            return list;
        } catch (Exception e) {
            return null;
        } finally {
            em.close();
        }
    }

    public void persist(Object object) {
        EntityManager em = emf.createEntityManager();
        try {
            em.getTransaction().begin();
            em.persist(object);
            em.getTransaction().commit();
        } catch (Exception e) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", e);
            em.getTransaction().rollback();
        } finally {
            em.close();
        }
    }
}
